{
	"$schema": "http://json-schema.org/draft-04/schema#",
	"type": "object",
	"definitions": {
		"configurations": {
			"type": "array",
			"items": {
				"type": "object",
				"required": [
					"name"
				],
				"properties": {
					"name": {
						"markdownDescription": "Identificatore configurazione. `Mac`, `Linux` e `Win32` sono identificatori speciali delle configurazioni che verranno selezionati automaticamente in tali piattaforme, ma come identificatore è possibile specificarne uno qualsiasi.",
						"descriptionHint": "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered.",
						"type": "string"
					},
					"compilerPath": {
						"markdownDescription": "Percorso completo del compilatore usato, ad esempio `/usr/bin/gcc`, per abilitare una versione più accurata di IntelliSense.",
						"descriptionHint": "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered.",
						"type": "string"
					},
					"compilerArgs": {
						"markdownDescription": "Argomenti del compilatore per modificare le direttive include o define usate, ad esempio `-nostdinc++`, `-m32`, e così via.",
						"descriptionHint": "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered.",
						"type": "array",
						"items": {
							"type": "string"
						}
					},
					"cStandard": {
						"description": "Versione dello standard del linguaggio C da usare per IntelliSense. Nota: gli standard GNU vengono usati solo per eseguire query sul compilatore impostato per ottenere le definizioni di GNU. IntelliSense emulerà la versione dello standard di C equivalente.",
						"type": "string",
						"enum": [
							"c89",
							"c99",
							"c11",
							"c17",
							"gnu89",
							"gnu99",
							"gnu11",
							"gnu17",
							"${default}"
						]
					},
					"cppStandard": {
						"description": "Versione dello standard del linguaggio C++ da usare per IntelliSense. Nota: gli standard GNU vengono usati solo per eseguire query sul compilatore impostato per ottenere le definizioni di GNU. IntelliSense emulerà la versione dello standard di C++ equivalente.",
						"type": "string",
						"enum": [
							"c++98",
							"c++03",
							"c++11",
							"c++14",
							"c++17",
							"c++20",
							"c++23",
							"gnu++98",
							"gnu++03",
							"gnu++11",
							"gnu++14",
							"gnu++17",
							"gnu++20",
							"gnu++23",
							"${default}"
						]
					},
					"compileCommands": {
						"markdownDescription": "Percorso completo del file `compile_commands.json` per l'area di lavoro.",
						"descriptionHint": "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered.",
						"type": "string"
					},
					"includePath": {
						"markdownDescription": "Elenco di percorsi che il motore IntelliSense usa durante la ricerca delle intestazioni incluse. La ricerca in questi percorsi non è ricorsiva. Specificare `**` per indicare la ricerca ricorsiva. Ad esempio: con `${workspaceFolder}/**` la ricerca verrà estesa a tutte le sottodirectory, mentre con `${workspaceFolder}` sarà limitata a quella corrente. In genere, ciò non deve includere le inclusioni di sistema, pertanto impostare `#C_Cpp.default.compilerPath#`.",
						"descriptionHint": "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered.",
						"type": "array",
						"items": {
							"type": "string"
						}
					},
					"macFrameworkPath": {
						"description": "Elenco di percorsi che il motore IntelliSense userà durante la ricerca delle intestazioni incluse da framework Mac. Supportato solo nella configurazione Mac.",
						"type": "array",
						"items": {
							"type": "string"
						}
					},
					"windowsSdkVersion": {
						"markdownDescription": "Versione del percorso di inclusione di Windows SDK da usare in Windows, ad esempio `10.0.17134.0`.",
						"descriptionHint": "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered.",
						"type": "string",
						"pattern": "^\\d{2}\\.\\d{1}\\.\\d{5}\\.\\d{1}$|^8\\.1$"
					},
					"dotConfig": {
						"description": "Il percorso a un file .config creato dal sistema Kconfig. Il sistema Kconfig genera un file con tutte le define per compilare un progetto. Esempi di progetti che usano il sistema Kconfig sono Kernel Linux e NuttX RTOS.",
						"type": "string"
					},
					"defines": {
						"markdownDescription": "Elenco di definizioni del preprocessore che il motore IntelliSense usa durante l'analisi dei file. In modo facoltativo, usare `=` per impostare un valore, ad esempio VERSION=1.",
						"descriptionHint": "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered.",
						"type": "array",
						"items": {
							"type": "string"
						}
					},
					"intelliSenseMode": {
						"markdownDescription": "Modalità IntelliSense da usare per eseguire il mapping a una variante della piattaforma e dell'architettura di MSVC, gcc o Clang. Se non è impostata o se è impostata su `${default}`, sarà l'estensione a scegliere il valore predefinito per tale piattaforma. L'impostazione predefinita di Windows è `windows-msvc-x64`, quella di Linux è `linux-gcc-x64` e quella di macOS è `macos-clang-x64`. Le modalità IntelliSense che specificano solo varianti `<compiler>-<architecture>` (ad esempio `gcc-x64`) sono modalità legacy e vengono convertite automaticamente nelle varianti `<platform>-<compiler>-<architecture>` in base alla piattaforma host.",
						"descriptionHint": "Uses of words 'platform', 'compiler', and 'architecture' are meant to be descriptive placeholders for literal values, so they should be translated, but without changing the surrounding `<>-<>` symbols. All other text inside `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered.",
						"type": "string",
						"enum": [
							"macos-clang-x86",
							"macos-clang-x64",
							"macos-clang-arm",
							"macos-clang-arm64",
							"macos-gcc-x86",
							"macos-gcc-x64",
							"macos-gcc-arm",
							"macos-gcc-arm64",
							"linux-clang-x86",
							"linux-clang-x64",
							"linux-clang-arm",
							"linux-clang-arm64",
							"linux-gcc-x86",
							"linux-gcc-x64",
							"linux-gcc-arm",
							"linux-gcc-arm64",
							"windows-clang-x86",
							"windows-clang-x64",
							"windows-clang-arm",
							"windows-clang-arm64",
							"windows-gcc-x86",
							"windows-gcc-x64",
							"windows-gcc-arm",
							"windows-gcc-arm64",
							"windows-msvc-x86",
							"windows-msvc-x64",
							"windows-msvc-arm",
							"windows-msvc-arm64",
							"clang-x86",
							"clang-x64",
							"clang-arm",
							"clang-arm64",
							"gcc-x86",
							"gcc-x64",
							"gcc-arm",
							"gcc-arm64",
							"msvc-x86",
							"msvc-x64",
							"msvc-arm",
							"msvc-arm64",
							"${default}"
						]
					},
					"forcedInclude": {
						"description": "Elenco di file che devono essere inclusi prima di qualsiasi file include in un'unità di conversione.",
						"type": "array",
						"items": {
							"type": "string"
						}
					},
					"configurationProvider": {
						"description": "ID di un'estensione VS Code che può fornire informazioni di configurazione IntelliSense per i file di origine.",
						"type": "string"
					},
					"mergeConfigurations": {
						"markdownDescription": "Impostare su `true` per unire percorsi di inclusione, definizioni e inclusioni forzate con quelli di un provider di configurazione.",
						"descriptionHint": "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered.",
						"type": "boolean"
					},
					"browse": {
						"type": "object",
						"properties": {
							"limitSymbolsToIncludedHeaders": {
								"markdownDescription": "Impostare su `true` per elaborare solo i file inclusi direttamente o indirettamente come intestazioni, su `false` per elaborare tutti i file nei percorsi di inclusione specificati.",
								"descriptionHint": "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered.",
								"type": [
									"boolean",
									"string"
								]
							},
							"databaseFilename": {
								"description": "Percorso del database dei simboli generato. Se viene specificato un percorso relativo, sarà relativo al percorso di archiviazione predefinito dell'area di lavoro.",
								"type": "string"
							},
							"path": {
								"markdownDescription": "Elenco di percorsi da usare per l'indicizzazione e l'analisi dei simboli dell'area di lavoro (usati da 'Vai alla definizione', 'Trova tutti i riferimenti' e così via). Per impostazione predefinita, la ricerca in questi percorsi è ricorsiva. Specificare `*` per indicare la ricerca non ricorsiva. Ad esempio, con `${workspaceFolder}` la ricerca verrà estesa a tutte le sottodirectory, mentre con `${workspaceFolder}/*` sarà limitata a quella corrente.",
								"descriptionHint": "Text in '' is a command and should be translated in the same way that VS Code itself translates it. Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered.",
								"type": "array",
								"items": {
									"type": "string"
								}
							}
						},
						"additionalProperties": false
					},
					"customConfigurationVariables": {
						"type": "object",
						"markdownDescription": "Variabili personalizzate su cui è possibile eseguire query tramite il comando `${cpptools:activeConfigCustomVariable}` da usare per le variabili di input in `launch.json` o `tasks.json`.",
						"descriptionHint": "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered.",
						"patternProperties": {
							"(^.+$)": {
								"type": "string"
							}
						},
						"additionalProperties": false
					}
				},
				"additionalProperties": false
			}
		},
		"env": {
			"type": "object",
			"markdownDescription": "Variabili personalizzate che è possibile riutilizzare in qualsiasi punto del file usando la sintassi `${variabile}` o `${env:variabile}`.",
			"descriptionHint": "The word 'variable' within curly braces should be translated. The \"env\" should not be translated, and the capitalization, spacing, and punctuation (\"${:}\", including the ``) should be preserved.",
			"patternProperties": {
				"(?!^workspaceFolder$)(?!^workspaceRoot$)(?!^workspaceFolderBasename$)(?!^execPath$)(?!^pathSeparator$)(?!^default$)(^.+$)": {
					"oneOf": [
						{
							"type": "string"
						},
						{
							"type": "array",
							"items": {
								"type": "string"
							}
						}
					]
				}
			},
			"additionalProperties": false
		},
		"version": {
			"type": "integer",
			"description": "Versione del file di configurazione. Questa proprietà è gestita dall'estensione. Non modificarla."
		},
		"enableConfigurationSquiggles": {
			"type": "boolean",
			"default": true,
			"markdownDescription": "Controlla se l'estensione segnala errori rilevati in `c_cpp_properties.json`.",
			"descriptionHint": "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered."
		}
	},
	"properties": {
		"configurations": {
			"$ref": "#/definitions/configurations"
		},
		"env": {
			"$ref": "#/definitions/env"
		},
		"version": {
			"$ref": "#/definitions/version"
		},
		"enableConfigurationSquiggles": {
			"$ref": "#/definitions/enableConfigurationSquiggles"
		}
	},
	"required": [
		"configurations",
		"version"
	],
	"additionalProperties": false
}